module.exports = function ($) {
    $(document).ready(function () {
        //星星评分  
        $(function () {
            var score = new Score({
                callback: function (cfg) {
                    // console.log(cfg.starAmount);
                }
            });
        });
        function Score(options) {
            this.config = {
                selector: '.star',     // 评分容器  
                renderCallback: null,        // 渲染页面后回调  
                callback: null         // 点击评分回调                           
            };

            this.cache = {
                aMsg: [
                    "糟糕|糟糕",
                    "较差|较差",
                    "还行|还行",
                    "推荐|推荐",
                    "力荐|力荐"
                ],
                iStar: 0,
                iScore: 0
            };

            this.init(options);
        }

        Score.prototype = {

            constructor: Score,

            init: function (options) {
                this.config = $.extend(this.config, options || {});
                var self = this,
                    _config = self.config,
                    _cache = self.cache;

                self._renderHTML();
            },
            _renderHTML: function () {
                var self = this,
                    _config = self.config;
                var html = '<span class="desc"></span>' +
                    '<p class="star-p hidden"></p>';
                $(_config.selector).each(function (index, item) {
                    $(item).append(html);
                    $(item).wrap($('<div class="parentCls" style="position:relative"></div>'));
                    var parentCls = $(item).closest('.parentCls');
                    self._bindEnv(parentCls);
                    _config.renderCallback && $.isFunction(_config.renderCallback) && _config.renderCallback();
                });

            },
            _bindEnv: function (parentCls) {
                var self = this,
                    _config = self.config,
                    _cache = self.cache;

                $(_config.selector + ' li', parentCls).each(function (index, item) {

                    // 鼠标移上  
                    $(item).mouseover(function (e) {
                        var offsetLeft = $('ul', parentCls)[0].offsetLeft;
                        ismax(index + 1);

                        $('p', parentCls).hasClass('hidden') && $('p', parentCls).removeClass('hidden');
                        $('p', parentCls).css({ 'left': index * $(this).width() + 12 + 'px' });


                        var html = '<em>' +
                            '<b>' + (index + 1) + '</b>分 ' + _cache.aMsg[index].split('|')[0] + '' +
                            '</em>';
                        $('p', parentCls).html(html);
                    });

                    // 鼠标移出  
                    $(item).mouseout(function () {
                        ismax();
                        !$('p', parentCls).hasClass('hidden') && $('p', parentCls).addClass('hidden');
                    });

                    // 鼠标点击  
                    $(item).click(function (e) {
                        var index = $(_config.selector + ' li', parentCls).index($(this));
                        _cache.iStar = index + 1;

                        !$('p', parentCls).hasClass('hidden') && $('p', parentCls).addClass('hidden');
                        var html = '<strong>' +
                            (index + 1) +
                            '分</strong>' + _cache.aMsg[index].split('|')[1];

                        $('.desc', parentCls).html(html);
                        _config.callback && $.isFunction(_config.callback) && _config.callback({ starAmount: _cache.iStar });
                    });

                });

                function ismax(iArg) {
                    _cache.iScore = iArg || _cache.iStar;
                    var lis = $(_config.selector + ' li', parentCls);

                    for (var i = 0; i < lis.length; i++) {
                        lis[i].className = i < _cache.iScore ? "on" : "";
                    }
                }
            }
        }

        //回复窗口
        $('.reply').hide();
        $('.rebutton').click(function () {
            var reBtn = $(this).parent().parent().parent().next();

            if (reBtn.is(':hidden')) {　　//如果reBtn是隐藏的则显示reBtn元素，否则隐藏
                $('.reply').slideUp();
                reBtn.slideDown();
            } else {
                reBtn.slideUp();
            }
        })
    })


    //点赞按钮变化
    // $(document).ready(function () {
    //     $(".likeBtn").click(function () {
    //         $(".likeBtn").toggleClass("btnClick");
    //         if ($("div").hasClass("btnClick")) {
    //             var left = parseInt($(this).offset().left) + 10, top = parseInt($(this).offset().top) - 10, obj = $(this);
    //             $(this).append('<div id="zhan"><b>+1<\/b></\div>');
    //             $('#zhan').css({ 'position': 'absolute', 'z-index': '1', 'color': '#C30', 'left': left + 'px', 'top': top + 'px' }).animate({ top: top - 10, left: left + 10 }, 'slow', function () {
    //                 $(this).fadeIn('fast').remove();
    //             });
    //         };
    //     });
    // });


    //图片集按钮轮播
    $(function () {
        var page = 1;
        var i = 4;//每版四个图片 
        //向右滚动 
        $(".rightBtn").click(function () { //点击事件 
            var v_wrap = $(this).parents(".showImg"); // 根据当前点击的元素获取到父元素 
            var v_show = v_wrap.find(".scroll_list"); //找到图片展示的区域 
            var v_cont = v_wrap.find(".img"); //找到图片展示区域的外围区域 
            var v_width = v_cont.width();
            var len = v_show.find("li").length; //我的图片图片个数 
            var page_count = Math.ceil(len / i); //只要不是整数，就往大的方向取最小的整数 
            if (!v_show.is(":animated")) {
                if (page == page_count) {
                    v_show.animate({ left: '0px' }, "slow");
                    page = 1;
                } else {
                    v_show.animate({ left: '-=' + v_width }, "slow");
                    page++;
                }
            }
        });
        //向左滚动 
        $(".leftBtn").click(function () { //点击事件 
            var v_wrap = $(this).parents(".showImg"); // 根据当前点击的元素获取到父元素 
            var v_show = v_wrap.find(".scroll_list"); //找到图片展示的区域 
            var v_cont = v_wrap.find(".img"); //找到图片展示区域的外围区域 
            var v_width = v_cont.width();
            var len = v_show.find("li").length; //我的图片图片个数 
            var page_count = Math.ceil(len / i); //只要不是整数，就往大的方向取最小的整数 
            if (!v_show.is(":animated")) {
                if (page == 1) {
                    v_show.animate({ left: '-=' + v_width * (page_count - 1) }, "slow");
                    page = page_count;
                } else {
                    v_show.animate({ left: '+=' + v_width }, "slow");
                    page--;
                }
            }
        });
    });

}; 